Доктор
ТуамОсес.
Сборник
тестовых вопросов и задач на знание C++ и умение
его
применять для решения конкретных задач.
Москва, 2010 год
©Доктор ТуамОсес inc.
Сайт автора книги, где мы можете задавать любые вопросы
автору – Доктору ТуамОсесу (да и просто пообщаться с
автором на любые темы), находится по ссылке: Форум разработчиков радиоэлектронных
устройств и программистов
1 Предисловие. 2
2 Лексика.. 3
3 Синтаксис.. 5
4 Семантика
и прагматика.. 13
4.1 Всё в куче. 13
4.2 Области видимости/действия идентификаторов,
тип компоновки, класс памяти… 15
5 Константы
(изображения значений) 16
6 Выражения
и операции (OPERATORs) 16
7 Операторы
(STATEMENTs) 16
8 Указатели,
массивы, ссылки. 16
9 Функции.
Перегрузка функций. Шаблоны функций. 16
10 Объектно-ориентированное
программирование (ООП) 17
10.1 Теория ООП и общие сведения об
использовании и реализации ОПП в C++. 17
10.1.1 Теория
и основные понятия ООП.. 17
10.1.2 Общие
сведения об реализации ООП в C++.. 17
10.2 Описание классов.. 17
10.3 Модификаторы доступа (private, protected и public) 17
10.4 Особенности различных видов
классов. 18
10.4.1 Union. 18
10.4.2 Struct 18
10.5 Компоненты класса.. 18
10.5.1 Общие
сведения. 18
10.5.2 Поля
класса. 18
10.5.3 Методы
класса. 18
10.5.4 Статические
компоненты класса. 18
10.5.5 Константные
компоненты класса. 19
10.5.6. 19
10.6 Конструкторы и деструкторы... 19
10.6.1 Общие
сведения о конструкторах и деструкторах и их отличиях от других компонентных
функций класса 19
10.6.2 Отличия
конструкторов от деструкторов. 19
10.6.3 Виды
конструкторов. Их особенности. 19
10.6.4 Использование
деструкторов. 20
10.6.5 Перегрузка
конструкторов. 20
10.6.6 Виртуальные
конструкторы и деструкторы.. 20
10.7 Наследование и иерархия классов.. 20
10.7.1 Виртуальные
функции. 20
10.7.2 Абстрактные
классы. Их назначение и использование. 20
10.7.3 Множественное
наследование. 21
10.8 Вложение классов.. 21
10.9 Друзья класса.. 21
10.9.2 Дружественные
функции. 21
10.10 Использование объектов классов.. 22
10.10.1 Создание
и инициализация объектов. 22
10.10.2 Специфика
глобальных объектов. 22
10.10.3 Прочие
вопросы, касающиеся работы с объектами класса. 22
10.10.4 Константные
объекты.. 23
10.11 Перегрузка стандартных операций (OPERATORs) 23
10.12 Всё в комплексе. 24
11 Работа
с динамической памятью. Использование new и delete. 24
12 Исключения.. 24
12.1 Общие сведения о механизме
исключений.. 24
12.2 Синтаксические конструкции в C++ для поддержки механизма
исключений.. 25
12.3 Использование механизма исключений
в конструкторах и деструкторах.. 25
13 Шаблоны
классов и обобщённое программирование. 25
13.1 Общие сведения о шаблонах классов.. 25
13.2 Параметры шаблона класса. Их
разновидности и особенности использования.. 25
13.3 Шаблон класса и обычный класс:
сходство и различия. 25
13.4 Инстанцирование шаблона.. 26
13.5 Специализация шаблонов. 26
13.5.1 Общие
сведения. 26
13.5.2 Частичная
специализация шаблона. 26
13.6 Друзья шаблона класса.. 26
13.7 Шаблоны с параметрами,
являющимися шаблонами.. 26
13.8 Шаблоны с переменным числом
параметров.. 26
14 Приведение
(cast) типов в C++ - стиле. 26
15 Использование
RTTI 26
16 Метапрограммирование
шаблонов.. 26
17 Паттерны
проектирования.. 26
18 Использование
средств промышленных библиотек.. 26
18.1 Стандартная библиотека STL. 26
18.2 MFC.. 26
18.3 Loki 26
18.4 Boost.. 26
18.5 Qt.. 26
18.6 GPL. 26
19 Работа
с различными средами (IDE) 26
19.1 Microsoft Visual Studio 6.0. 26
20 Парадигмы,
идеологии, техники, стили и эволюция языков программирования.. 27
21 Прочее. 27
Сайт автора книги, где мы можете задавать любые вопросы
автору – Доктору ТуамОсесу (да и просто пообщаться с
автором на любые темы), находится по ссылке: Форум разработчиков радиоэлектронных
устройств и программистов
Отдельные места (полностью книга будет доступна только издателям,
которые захотят её опубликовать) из книги будут опубликовываться
и обсуждаться по этой ссылке: FAQ по C++ (фрагменты
из моей будущей книги)
2.1.1.3 [# Что такое кодировка? Какие кодировки Вы знаете? Чем они отличаются друга от друга?
#]
2.1.1.4 [# Имеет ли значение, с какой кодировкой символов работает
текстовый редактор, в котором Вы пишите текст программы на C++? И почему? #]
2.1.1.9 Есть
ли в C++ такие конструкции (не
считая комментарии и строковые константы), в которых компилятор игнорирует
регистр написания букв? Если да - приведите примеры. Если нет – объясните
почему.
2.1.1.10
Можно ли в программе на C++ использовать русские буквы? Если да, то
в каких конструкциях?
3
Синтаксис
3.1.1.1 [# "Ключевые
слова", "зарезервированные слова", "служебные слова". Какие из этих лексем
допустимо в некоторых случаях использовать в качестве идентификаторов
пользователя? #]
3.1.1.3 [# В каких случаях
после закрывающей фигурной скобки ('}') нужно обязательно ставить точку с
запятой (';')? #]
typedef struct S1 { char *name; } S ;
typedef struct { char *name; } S ;
struct
S { char *name; } ;
3.1.1.11
Для чего в C++
ввели функциональную форму приведения типа?
#include <iostream>
using
namespace std ;
int main ()
{
int int_A , int_B ;
#pragma warning ( disable: 4700 ) // warning C4700 должен быть подавлен
int_A
= int_B ;
// warning
C4700: local variable 'int_B'
// used without
having been initialized
cout << "main running " << endl ;
return 0 ;
}
3.1.1.18
Чем отличаются const char* ptr и char const *ptr?
3.1.1.19
Если результат , возвращаемый функцией , является структурой
( struct ) , то каким образом можно присвоить значения отдельным полям этой
структуры в теле функции и как их прочитать в точке вызова функции ?
3.1.1.25
Будет ли "ругаться" компилятор если extern-переменная несколько раз
объявлена, но ни разу нигде не определена?
3.1.1.28
Переменная j определена в global
scope, в теле main и внутри
вложенного в тело main блока. Внутри вложенного блока
есть конструкция ::j. К
какой из переменных происходит обращение?
3.1.1.29
Переменная j определена в global
scope. Выдаст ли ошибку компилятор если внутри вложенного блока использовать конструкцию ::j в случае если внутри
вложенного блока нет локальной переменной j и к
глобальной переменной можно обращаться напрямую?
3.1.1.35
Будет ли выдаваться в MSVC++ варнинг "unreferenced
local variable" если
переменная нигде не используется, но проинициализирована?
using namespace std ;
using namespace std ;
using namespace std ;
3.1.1.4 Зачем
в определении My_Type p
= new My_Type нужно два раза писать
"My_Type"?
3.1.1.8 Чем
в C++ "блок"
отличается от "составного оператора"?
3.1.1.12
Можно ли выйти из вложенных друг в друга операторов if и/или case не используя оператора goto? Если да – приведите пример, если нет – то объясните почему.
4.2.1.17
Дайте
определения понятиям "пространство имён" (например "метки",
"имена переменных", "имена компонентов классов" и т.п.),
"namespace", "сфера
действия" и "область видимости"? Чем отличается namespace от "пространства имён"?
9.1.1.1
[# Учитывается
ли разница в спецификации исключений (в заголовке функции) при перегрузке
функции? #]
9.1.1.2
Разрешается ли специализировать шаблон функции?
9.1.1.3
[# Что из себя представляют
параметры шаблона функции и где они используются? #]
9.1.1.4
[# Все ли
параметры шаблона функции должны быть обязательно использованы и где? #]
9.1.1.5
В чём общие черты и различия, достоинства и недостатки
использования перегрузки функций по отношению к использованию шаблонов функций.
9.1.1.6
Какие параметры функции-шаблона выводятся
автоматически?
9.1.1.7
Можно ли перегружать функцию-шаблон?
10.1.1.1
[# Что такое полиморфизм? Чем
отличаются друг от друга статический и динамический полиморфизм? Приведите
примеры кода, в которых используется тот или иной вид полиморфизма. Объясните в чём выгода его использования. #]
10.1.1.2
Что такое "инкапсуляция"?
10.1.1.3
[# Что означает термин "позднее связывание"? #]
10.1.2.1
[# В C++ у каждого класса есть некоторые
особые функции-члены, вызовы которых могут вставляться компилятором в код без
явного на то указания программиста. Перечислите такие
функции-члены и те случаи, когда могут возникать неявные вызовы. #]
10.1.2.2
[# Почему в C++ нельзя реализовать автоматическую
сборку мусора? #]
10.2.1.1
Для чего применяется предварительное объявление (forward declaration) классов?
10.2.1.2
Для чего используется ключевое слово explicit?
10.2.1.3
Для чего используется ключевое слово "mutable"?
10.2.1.4
В чём разница определения метода внутри и вне класса? И
для чего нужны 2 способа описания методов?
10.2.1.5
Можно в методах присваивать параметрам значения по
умолчанию как в случае функций, не принадлежащих классам?
10.2.1.6
10.3Модификаторы доступа (private, protected и public)
10.3.1.1
[# На какие функции, объявленные внутри класса, не
распространяется действие модификаторов доступа? #]
10.3.1.2
[# Как
определяется тип доступа к компонентам класса если никаких
модификаторов доступа в описании класса явно не указано? #]
10.4.1.1
В чем главное отличие объединения от других видов
классов С++?. Может ли объединение участвовать в иерархии наследования?
10.4.1.2
Разрешается ли определять для объединения конструкторы
и деструктор? А виртуальные функции?
10.4.2.1
Является ли структура классом? В чём её особенности?
10.4.2.2
Влияет ли наличие методов в структуре на размер
объекта? Одинаков ли размер класса и аналогичной структуры?
10.5.1.1
[# Какие сущности могут являться компонентами класса в C++? #]
10.5.1.2
[# Что такое this? И в каких
задачах без него невозможно обойтись? #]
10.5.2.1
Может ли поле класса быть объектом своего же класса? А быть указателем на объект
своего класса? А ссылкой на объект своего класса?
10.5.2.2
[# Разрешается ли объявлять массив в качестве поля
класса? А константный массив? Если да, то как присвоить элементам массива
начальные значения? #]
10.5.3.1
Может ли параметр компонентной функции класса иметь тип
своего же класса? А указателем на свой класс? А ссылкой на свой же
класс?
10.5.4.1
Для чего нужны статические поля в классе?
10.5.4.2
Сколько места в классе занимают статические поля ?
10.5.4.3
[# Что такое "статический метод"? И чем он отличается
от обычного метода? # ]
10.5.4.4
[# Чем отличаются глобальные статические функции от
статических функций, являющихся членами классов? #]
10.5.4.5
Какие методы класса не могут быть статическими?
10.5.4.6
Можно ли объявить в классе статическую константу? А
константный статический массив?
10.5.4.7
Чем отличается обычная статическая переменная от
статической переменной, являющейся членом класса?
10.5.4.8
А какие статические поля можно инициализировать
непосредственно в классе?
10.5.4.9
Как инициализировать переменную, являющуюся приватным
статическим членом класса?
10.5.4.10
10.5.5.1
[# Влияет ли наличие целочисленных констант-полей на
размер класса? #]
10.5.5.2
[# Каким образом разрешается инициализировать
константные поля в классе? #]
10.5.5.3
[# Что такое "константный метод"? И чем он
отличается от обычного метода? И для чего он нужен? #]
10.5.5.4
Может ли константный метод вызываться для
объектов-переменных? А обычный метод — для объектов-констант?
10.5.5.5
10.5.6
10.6.1.1
[# Что такое конструктор и деструктор? В чём их
особенность в сравнении с прочими методами класса? #]
10.6.2.1
Можно ли
перегружать конструкторы? А деструкторы?
10.6.2.2
Сколько видов конструкторов может быть в классе? А
сколько видов деструкторов?
10.6.2.3
Может ли деструктор иметь параметры? А конструктор?
10.6.3.1
Что такое конструктор копирования? В каких случаях он
вызывается?
10.6.3.2
В чем потенциальная опасность конструктора копирования
по умолчанию?
10.6.3.3
Может ли конструктор быть приватным? Какие последствия
влечет за собой объявление конструктора приватным?
10.6.3.4
Код какого вида конструкторов и в каких случаях может
быть сгенерирован компилятором автоматически?
10.6.3.5
Что такое конструктор конверсии (преобразования)? И в каких
случаях он вызывается? Какой вид конструктора фактически является конструктором
преобразования типов?
10.6.3.6
В каких случаях переменная класса может быть проинициализирована только в списке
инициализации конструктора?
10.6.3.7
Когда класс обязан
иметь явно описанный конструктор по умолчанию?
10.6.3.8
Что общего, и чем обычно отличаются реализации
конструкторов копирования, инициализации и перегруженной операции присваивания?
10.6.3.9
В каких случаях происходит неявный вызов конструктора?
А как конструктор можно вызвать явно? И когда это нужно?
10.6.4.1
В каких случаях происходит неявный вызов деструктора? А
как деструктор можно вызвать явно? И когда это нужно?
10.6.4.2
10.6.5.1
В чем отличия и что общего в специфике перегрузки
конструкторов, деструкторов и обычных методов?
10.6.6.1
В каких случаях деструктор нужно делать виртуальным? И
для чего?
10.6.6.2
Чем отличается вызов виртуального деструктора от вызова
обычной виртуальной функции?
10.7.2.1
Что такое "абстрактный класс"? И для чего он
нужен?
10.7.2.2
Какие компонентные функции базового класса не могут
быть унаследованы в классе потомке?
10.7.2.3
Какие две роли выполняет наследование?
10.7.2.4
Какие виды наследования возможны в С++?
10.7.2.5
Можно ли в С++ (если да - то как) написать такой класс,
от которого нельзя будет наследовать в дальнейшем никакой другой класс?
10.7.2.6
[# Что такое "виртуальное наследование"? Для
чего оно используется? И чем это понятие отличается от понятия
"виртуальная функция"?
#]
10.8.1.1
Как называется использование объекта одного класса в
качестве поля другого класса?
10.8.1.2
Дайте определение вложенного класса. Ограничена ли
глубина вложенности классов?
10.8.1.3
Что такое "is-a" и
"has-a" отношения между классами?
10.8.1.4
Может ли объемлющий класс иметь неограниченный доступ к
элементам вложенного класса? А вложенный класс — к элементам объемлющего? Каким
образом вложенный класс может использовать методы объемлющего класса? А
объемлющий — методы вложенного?
10.8.1.5
Можно ли определить вложенный класс внешним образом?
Зачем это может понадобиться?
10.9.1.1
Являются ли классы, производные от друзей, друзьями
исходного класса?
10.9.1.2
Почему рекомендуется по возможности избегать
использования механизма дружественных классов и функций?
10.9.1.3
Могут ли родственные классы быть друзьями друг другу?
10.9.2.1
[# Чем дружественные функции отличаются от компонентных
функций класса? #]
10.9.2.2
Наследуются ли дружественные функции?
10.9.2.3
Может ли быть дружественная функция быть виртуальной?
10.9.2.4
Можно ли перегружать дружественную функцию?
10.9.2.5
Может ли дружественная функция описана как константная?
10.9.2.6
Может ли дружественная функция описана как статическая?
10.9.2.7
Может ли приватный метод быть дружественной функцией
другого класса?
10.9.2.8
Может ли конструктор быть дружественной функцией для
другого класса? А деструктор?
10.9.2.9
Может ли дружественная функция в своём теле вызывать
методы того класса, для которого она является другом?
10.9.2.10
А может ли метод класса в своём теле вызывать
дружественную функцию?
10.9.2.11
Может ли дружественная функция быть шаблоном функции?
10.9.2.12
Может ли дружественная функция быть членом шаблона
класса?
10.9.2.13
Может ли описывать дружественные функции в шаблоне
класса?
10.10.1.1
В каком порядке инициализируются поля в классе при
использовании списка инициализаторов? Совпадает ли этот порядок с порядком
перечисления инициализаторов в списке инициализации конструктора?
10.10.1.2
Чем отличаются друг от друга "инициализация",
"копирование", "присваивание" в контексте объектов класса?
10.10.2.1
От чего зависит порядок создания (последовательность
вызова конструкторов) глобальных переменных?
10.10.2.2
Когда и в каком порядке вызываются деструкторы
глобальных объектов (т. е. тех, которые объявлены вне функции main)?
10.10.3.1
Расскажите, что и как нужно сделать, что бы объекты
написанного Вами класса можно было помещать в cout и
читать из cin?
10.10.3.2
Когда можно вернуть из функции ссылку на локальный
объект?
10.10.3.3
Как удалить массив объектов?
10.10.3.4
Как запретить удаление объекта класса?
10.10.3.5
Для чего нужен и как используется класс auto_ptr ?
10.10.3.6
Допускается ли при вызове функции передавать объекты в
качестве параметров, и какими способами? А возвращать как результат?
10.10.3.7
10.10.4.1
Можно ли изменить значение поля у константного объекта?
10.11.1.1
Можно ли при перегрузке изменить приоритет операции
и/или её ассоциативность?
10.11.1.2
Можно ли перегружать уже перегруженную функцию -
оператор?
10.11.1.3
Все ли стандартные операции можно перегружать? Если
нет, то какие и почему?
10.11.1.4
В чем специфика перегрузки операций '||' и '&&'
?
10.11.1.5
Как различаются перегруженная префиксная и постфиксная
операции инкремента и декремента?
10.11.1.6
Можно ли в C++ определять новые операции?
10.11.1.7
Что такое "автоматически перегружаемая
операция" и перечислите, какие операции в C++ являются "автоматически перегружаемыми"
10.11.1.8
В чем специфика перегрузки операций "sizeof", "typeid",
"new" и "delete"?
Чем она вызвана?
10.11.1.9
Сравните особенности перегрузки операций "()"
и "[]".
10.11.1.10
В чём специфика перегрузки операций как методов класса
и как дружественных функций? В каких случаях какой способ оптимальней?
10.11.1.11
Можно ли перегружать операции для встроенных типов
данных?
10.11.1.12
Для чего (как правило) используется перегрузка
оператора вызова функции?
10.11.1.13
В каких случаях вызывается перегруженный оператор new? А в каких – перегруженный delete?
10.11.1.14
Какие операции разрешается перегружать только как
методы класса? А какие не рекомендуется?
10.11.1.15
Можно ли в одном выражении на одном уровне вложенности
применять перегруженные и не перегруженные операторы?
10.11.1.16
Все ли операции можно перегрузить с помощью глобальной
дружественной функции?
10.11.1.17
В каких случаях операцию можно перегрузить только
глобальной функцией?
10.11.1.18
В каких случаях глобальная операция-функция должна быть
дружественной?
10.11.1.19
Обязателен ли в функции operator
параметр типа “класс” или “ссылка на класс”?
10.11.1.20
Наследуются ли
перегруженные операции?
10.11.1.21
Можно ли
повторно перегрузить в производном классе операцию, перегруженную в базовом
классе?
10.11.1.22
[# Перегрузка операций приведения типа в стиле С и в
стиле С++. В чём специфика? #]
10.11.1.23
[# Есть выражения: ( 66 + 33 ) и ( 66.0 + 33.0 ). Можно
ли в этом случае говорить о "перегрузке" операции "+"?
Поясните свой ответ на примере #]
10.11.1.24
Какие операции можно перегрузить для доступа к
элементам двумерного массива?
10.11.1.25
Зачем при перегрузке new/delete для класса нужно проверять размер запрашиваемой
памяти?
10.11.1.26
Как вы думаете, почему функции new/delete, перегружаемые для класса, являются статическими?
10.11.1.27
Отличается ли реализация перегруженной функции new[]() для массивов от реализации «обычной» функции new()?
10.11.1.28
Опишите схему функции, перегружающей глобальную функцию
new.
10.11.1.29
10.12.1.1
[# У метода класса параметр описан как ссылка на
объект. Можно ли в методе обращаться к private-полям объекта-параметра? Если да, то в каком случае, если
нет – то почему? Приведите примеры. #]
11.1.1.1
Как запретить создание объектов в куче?
11.1.1.2
В чем специфика применения операции delete
к указателям на функции?
11.1.1.3
Как предотвратить утечки памяти, связанные с
забывчивостью программистов вызывать delete?
11.1.1.4
Какие типы являются POD-типами? Чем отличается работа
механизма new/delete с
POD-объектами и nonPOD-объектами?
11.1.1.5
Сколько существует форм new/delete? В чем их отличие?
11.1.1.6
В чем главное отличие объектно-ориентированного
механизма new/delete С++ от
"сишного"механизма malloc()/free()?
11.1.1.7
Что произойдет, если функции free()
передать в качестве аргумента нулевой указатель?
11.1.1.8
Можно ли с помощью функции realloc()
уменьшить объем выделенной памяти?
12.1.1.1
Выберете правильный вариант ответа. Исключение — это:
1) событие;
2) ситуация;
3) объект;
4) ошибка в программе;
5) прерывание;
12.1.1.2
В чём общее и принципиальная разница между throw и return?
12.2.1.1
Назовите ключевые слова С++, которые используются для
обработки исключений.
12.2.1.2
При написании оператора catch
мы можем в качестве типа его аргумента написать непосредственно тип исключения,
указатель на тип исключения либо ссылку на тип исключения. В чём разница? И в
каких случаях нужно применять каждый из способов?
12.2.1.3
Что означает оператор throw
без параметра?
12.3.1.1
А можно ли сгенерировать исключение в деструкторе? А в
конструкторе?
12.3.1.2
Что произойдёт если исключение будет сгенерировано в
конструкторе или деструкторе?
12.3.1.3
Какие особенности имеет обработка исключения,
сгенерированного в конструкторе?
12.3.1.4
13.1.1.1
Какие виды шаблонов в С++ вы знаете?
13.1.1.2
Для чего предназначены шаблоны?
13.1.1.3
Объясните назначение ключевого слова typename в шаблонах.
13.2.1.1
Какие виды параметров разрешается задавать в шаблоне
класса? А в шаблоне функции?
13.2.1.2
Можно ли параметрам шаблона присваивать значения по
умолчанию?
13.3.1.1
Может ли шаблонный (темплэйтный)
13.3.1.2
Можно ли объявить в классе шаблонный метод? А шаблонный
конструктор?
13.3.1.3
класс быть абстрактным? Почему?
13.3.1.4
Разрешается ли определять в классе-шаблоне статические
поля? А статические методы?
13.3.1.5
Объясните, в чем состоят проблемы, возникающие при
разделении шаблонного класса на интерфейс и реализацию?
13.3.1.6
Может ли шаблонный конструктор быть конструктором по
умолчанию?
13.3.1.7
Может ли класс-шаблон быть вложенным в другой
класс-шаблон? А в обычный класс?
13.3.1.8
Может ли шаблон класса быть наследником обычного
класса? А обычный класс от шаблона?
13.3.1.9
Каким образом можно использовать возможность
наследования обычного класса от шаблона?
13.3.1.10
В чем разница между определением и объявлением шаблона?
13.4.1.1
Объясните термин «инстанцирование шаблона».
13.4.1.2
Для чего применяются директивы явного инстанцирования?
13.4.1.3
Что такое «модель явного инстанцирования» и как она
работает?
13.5.1.1
Что такое специализация шаблона? Объясните разницу
между полной и частичной специализацией.
13.5.1.2
Что из себя представляет и для чего применяется
специализация шаблонов?
13.5.2.1
Что такое частичная специализация шаблона?
13.6.1.1
Какие проблемы возникают при объявлении дружественной
функции для класса-шаблона?
17.1.1.1
Что такое "паттерны проектирования"?
17.1.1.2
"Паттерны (шаблоны) проектирования",
"метапрограммирование шаблонов" и "шаблоны классов": есть
ли разница между этими понятиями? Если есть – то в чём?
17.1.1.3
Приведите структуру и принцип действия паттерна Singleton.
17.1.1.4
19.1Microsoft Visual Studio 6.0
19.1.1.1
Зачем в дереве проекта нужна категория "Header Files"?
19.1.1.2
Как удалить файл из дерева проекта в MSVC++ 6SP5?
19.1.1.3
Что нужно сделать в MSVC++ чтобы в своей программе
можно было использовать объекты определённые в исходниках
другого программиста и объявленные (продекларированные) в хидерах?
21.1.1.13
Виды маршалинга
, их достоинства и недостатки.
21.1.1.23
Какие средства межпроцессной коммуникации вы знаете? Какие у них
достоинства и недостатки?
21.1.1.32
Как подгрузить Riched32.dll в InitInstance()?
21.1.1.38
Как заставить CHttpFile принудительно передавать файлы в бинарном
виде?
21.1.1.138 Какие
функции реализованы в библиотеке <cstdio> для обеспечения прямого доступа к записям двоичного файла?
Можно ли их использовать для работы с текстовыми файлами?
21.1.1.144 В
каких состояних может находиться поток? Каким образом отслживается состояние «конец потока»?
21.1.1.150 Каково
назначение флагов форматированя? Какие средства реализованы в библиотеке
для работы с флагами форматирования?
21.1.1.179 Зачем
в контейнере list реализованы собственные методы сортировки
поиска и слияния? Можно ли пользоваться соответствующими стандартными
алгоритмами при обработке списка?
21.1.1.184 Отличается
ли функция at() доступа по индексу от перегруженной
операции индексирования и чем?
21.1.1.186 Чем
метод size() отличается от метода capacity()?
А в чем отличие этих методов от метода max_size()?
21.1.1.187 Перечислите
методы контейнера list, предназначенные для вставки удаления и
замены элементов. Отличаются ли эти методы от соответствующих методов вектора и
дека?
21.1.1.217 Почему
алгоритмы remove() не удаляют элементы из контейнеров? Как
реально удалить элементы из контейнера?
1) контролируемый
блок;
2) блок обработки
исключения;
3) секция-ловушка;
4) генератор
исключения;
5) обработчик
прерывания;